﻿using System;
namespace DirectUI.Mobile.UI.Controls
{
   public interface IDirectUIControl:IDisposable
    {
        bool Active { get; }
        System.Windows.Forms.AnchorStyles Anchor { get; set; }
        System.Drawing.Color BackColor { get; set; }
        void BeginInit();
        DirectUI.Mobile.UI.DataBindingCollection BindingCollection { get; }
        int Bottom { get; }
        System.Drawing.Rectangle Bounds { get; set; }
        bool CanClick { get; }
        event EventHandler Click;
        System.Drawing.Rectangle ClientRectangle { get; }
        void ClipRectangle(ref System.Drawing.Rectangle rect);
        IContainer Container { get; set; }
        System.Drawing.Graphics CreateGraphics();
        void DataBind();
     
        bool Enabled { get; set; }
        void EndInit();
        void Focus();
        System.Drawing.Font Font { get; set; }
        System.Drawing.Color ForeColor { get; set; }
        event EventHandler ForeColorChanged;
        event EventHandler GotFocus;
        int Height { get; set; }
        event EventHandler Initialize;
        bool Initializing { get; }
        void Invalidate();
        bool IsAncestorDoubleBuffered { get; }
        bool IsAttached { get; }
        bool IsAvailable { get; }
        bool IsDescendantOf(IContainer container);
        bool IsDoubleBuffered { get; }
        bool IsDown { get; }
        bool IsTransparent { get; }
        event System.Windows.Forms.KeyEventHandler KeyDown;
        event System.Windows.Forms.KeyPressEventHandler KeyPress;
        event EventHandler KeyUp;
        void Leave();
        bool LeaveNestedFocusedControl();
        int Left { get; set; }
        event EventHandler LostFocus;
        string Name { get; set; }
        bool NeedDataBind { get; set; }
        bool OnClick(PointEventArgs e);
        void OnDown(PointEventArgs e);
        void OnEnter(IHost host);
        void OnGesture(GestureEventArgs e);
        void OnKeyDown(System.Windows.Forms.KeyEventArgs e);
        void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e);
        void OnKeyUp(System.Windows.Forms.KeyEventArgs e);
        void OnLeave(IHost host);
        void OnLostFocus();
        void OnMove(PointEventArgs e);
        void OnPaint(DirectUIPaintEventArgs e);
        void OnRelease(PointEventArgs e);
        void OnUp(PointEventArgs e);
        event EventHandler<DirectUIPaintEventArgs> PaintBackground;
        DirectUIControl Parent { get; }
        event EventHandler ParentChanged;
        void PerformClick();
        event EventHandler<DirectUI.Mobile.UI.PropertyChangingEventArgs> PropertyChanged;
        void Refresh();
        int Right { get; }
        void Scale(System.Drawing.SizeF scaleFactor);
        System.Drawing.SizeF ScaleFactor { get; set; }
        int ScaleX(int value);
        int ScaleY(int value);
        System.Drawing.Rectangle ScreenBounds { get; }
        bool Selectable { get; }
        void SetBinding(string properyName, DirectUI.Mobile.UI.DataBinding binding);
        event EventHandler<ChangedEventArgs<System.Drawing.Size>> SizeChanged;
        int Top { get; set; }
        int UnscaleX(int value);
        int UnscaleY(int value);
        void Update();
        bool Visible { get; set; }
        event EventHandler VisibleChanged;
        int Width { get; set; }
    }
}
